今天來講一下Go語言的Package的基本概念及創建方法
Package是一個目錄,裡面包含了一個或多個Go檔案,這些檔案通常是相關的,例如一個Package可能包含了一個或多個函式、類型等等。在Go語言中,Package是一個很重要的概念,因為Go語言的封裝是通過Package來實現的,也就是說,一個Package中的函式、類型等等,只有在這個Package中才能被訪問,外部的Package是無法訪問的,除非這個函式、類型等等是公開的(即首字母大寫)。
要建立一個Package,我們需要先建立一個目錄,然後在這個目錄下建立一個或多個Go檔案,並且將相同Package所屬檔案的第一行加上package <package-name>
,這樣就可以將這些檔案歸類到同一個Package中進行初步分類。
要運行一個Package,我們需要先進入到這個Package的目錄下,然後執行以下命令:
go run <file-name>.go
注意:如果要直接運行Package中的Go檔案的話,這個檔案中必須包含main
函式與設定package main
,否則會報錯。
要引入一個Package,我們需要在Go檔案中加上import <package-name>
,這樣就可以使用這個Package中的函式、類型等等了。如果要引入的Package是Go語言的內建Package的話,我們可以直接引入,例如:
import "fmt"
如果要引入的Package是自己寫的Package的話,我們需要指定Package的路徑為相對路徑或絕對路徑,例如:
import "mygo/five/exclamation"
func main() {
exclamation.MyGOFiveExclamation()
}
如果要引入的Package是第三方的Package的話,我們可以使用go get
來下載這個Package,例如:
go get github.com/gin-gonic/gin
然後在Go檔案中引入這個Package,例如:
import (
ginAlias "github.com/gin-gonic/gin"
) // 題外話,你可以透過這種方式來為Package取別名
func callMethodWithAlias() {
r := ginAlias.Default()
r.GET("/", func(c *ginAlias.Context) {
c.JSON(200, ginAlias.H{
"message": "Hello, World!",
})
})
r.Run() // listen and serve on
}
如果你只需要進行初始化,但不想使用這個Package的話,可以使用_
來忽略這個Package,例如:
import (
"database/sql"
_ "github.com/mattn/go-sqlite3" // 本package只用來初始化sqlite3相關功能,真正操作sqlite3的是database/sql
)
那麼今天的文章就到這告一段落,如果我的文章有任何地方有錯誤請在留言區反應
明天將會介紹Go語言的Module的基本概念及創建方法